import { showFailToast } from "../utils";
import { uniFetch } from "./uni-fetch";

/**
 * 获取任务列表
 * @param {Object} status
 * @param {Object} page
 * @param {Object} pageSize
 * @param {Function} callback 成功回调函数
 */
export function getTaskList(status,page,pageSize,callback){
   return uniFetch.get('/driver/tasks/list',{status,page,pageSize}).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

/**
 * 获取任务列表 携带查询参数
 * @param {Object} query
 * @param {Object} callback
 */
export function getTaskListByQuery(query,callback){
  return uniFetch.get('/driver/tasks/list',query).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

/**
 * 获取任务详细
 * @param {Object} id
 */
export function getTaskDetail(id,callback){
  return uniFetch.get('/driver/tasks/details/' + id).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

/**
 * 上传提货结果
 */
export function pickupTask(req,callback){
  if(!req.id) {
    return
  }
  return uniFetch.post('/driver/tasks/takeDelivery',req).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

export function deliverPick(req,callback){
  if(!req.id) {
    return
  }
  return uniFetch.post('/driver/tasks/deliver',req).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

//回车登记
export function recordRequest(req,callback){
  if(!req.id) {
    return
  }
  return uniFetch.post('/driver/tasks/truckRegistration',req).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

/**
 * 延迟提货 /driver/tasks/delay
 * @param {Object} req id 司机单id delayReason 延迟原因  delayTime 延迟时间
 * @param {Object} callback
 */
export function delayTask(req,callback){
  if(!req.id) {
    return
  }
  return uniFetch.put('/driver/tasks/delay',req).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}

/**
 * 上报异常
 * @param {Object} req
 * @param {Object} callback
 */
export function reportException(req,callback){
  return uniFetch.post('/driver/tasks/reportException',req).then(res => {
    if(callback){
      callback(res.data)
    }
  }).catch(err => {
      showFailToast('发生异常' + JSON.stringify(err))
  })
}
